home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr57 / nwnt.zip / NWNT.EXE / OEMNADNC.INF < prev    next >
INI File  |  1993-04-22  |  36KB  |  1,212 lines

  1. ;***********************************************************************
  2. ;
  3. ; OEMNADNC.INF
  4. ;
  5. ;       3Com ODI 3C503 network card SETUP INF file.
  6. ;
  7. ;***********************************************************************
  8.  
  9. ;-----------------------------------------------------------------------
  10. ; OPTION TYPE
  11. ; -----------
  12. ; This identifies the Option type we are dealing with.  The different
  13. ; possible types are:
  14. ;
  15. ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  16. ;
  17. ;  Types specific to networking:
  18. ;
  19. ; NetAdapter,        a netcard / adapter combination or just a netcard
  20. ; NetDriver,         just a netcard driver
  21. ; NetTransport,      a complete NDIS-compliant TDI transport stack
  22. ; NetService,        an NT networking service
  23. ; NetWork,           a complete network ensemble.
  24. ; NetProvider        a complete network which supports NT MPR protocol
  25. ;-----------------------------------------------------------------------
  26.  
  27. [Identification]
  28.     OptionType = NetAdapter
  29.  
  30. ;-----------------------------------------------------------------------
  31. ; PlatformsSupported
  32. ; ------------------
  33. ; This identifies the platforms supported by the adapter card.
  34. ; Possible types are:
  35. ;
  36. ; ISA, EISA and MCA
  37. ;-----------------------------------------------------------------------
  38.  
  39. [PlatformsSupported]
  40.     ISA
  41.     EISA
  42.     "Jazz-Internal Bus"
  43.  
  44. ;-----------------------------------------------------------------------
  45. ; OPTION LIST
  46. ; -----------
  47. ; This section lists the OEM Option key names.  These keys are locale
  48. ; independent and used to represent the option in a locale independent
  49. ; manner.
  50. ;
  51. ;-----------------------------------------------------------------------
  52.  
  53. [Options]
  54.     ODI_3C503
  55.  
  56. [LanguagesSupported]
  57.     ENG
  58.  
  59. [OptionsTextENG]
  60.     ODI_3C503     = "ODI 3Com 3C503 Adapter for NetWare"
  61.  
  62. ;***********************************************************************
  63. ; CONSTANTS FOR USING DIALOGS
  64. ;***********************************************************************
  65. [FileConstants]
  66. ;
  67. ;  File names, etc.
  68. ;
  69. UtilityInf      = "UTILITY.INF"
  70. ParamInf        = "NCPARAM.INF"
  71. subroutineinf   = "SUBROUTN.INF"
  72. Exit_Code       = 0
  73. ;ShellCode       = 0
  74.  
  75. ;
  76. ; EventLog Message File
  77. ;
  78. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  79. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  80.  
  81. ; Product Info
  82. ;
  83. Manufacturer    = "Novell"
  84. ProductMajorVersion     = "0"
  85. ProductMinorVersion     = "9"
  86. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  87. ;
  88. ; Hardware
  89. ;
  90. DriverName                   = "OdiLoad"
  91. OdiModules             = "ODI_Modules"
  92. ProductHardwareName          = "3C503"
  93. ProductHardwareODI_3C503Title   = "ODI 3Com 3C503 Adapter for NetWare"
  94. NetRuleHardwareType          = "nw3C503 nwAdapter"
  95. NetRuleHardwareBindForm      = " yes yes container"
  96. ;
  97. ; Registry Key
  98. ;
  99. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(DriverName)"\CurrentVersion"
  100. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  101.  
  102. ;
  103. ;  Dialog Parameters
  104. ;
  105. IRQList   = ^(IRQChoices, 1)
  106. IRQValues = ^(IRQChoices, 2)
  107. IOBaseAddrHexList = ^(IOBaseAddrChoices, 1)
  108. IOBaseAddrDecList = ^(IOBaseAddrChoices, 2)
  109. IOBaseAddrNwList  = ^(IOBaseAddrChoices, 3)
  110. ;
  111. ;  Changed MemMappedWndAddrList to
  112. ;     MemAddrListHex
  113. ;  Changed MemMappedWndAddrValues to
  114. ;     MemAddrListDec
  115. ;  Changed MemMappedWndAddrNwValues to
  116. ;     MemAddrListNw
  117. ;
  118. ;
  119. MemAddrListHex = ^(MemMappedWndBaseAddrChoices, 1)
  120. MemAddrListDec = ^(MemMappedWndBaseAddrChoices, 2)
  121. MemAddrListNw  = ^(MemMappedWndBaseAddrChoices, 3)
  122.  
  123. [IRQChoices]
  124. IRQ_0 = "2",2
  125. IRQ_1 = "3",3
  126. IRQ_2 = "4",4
  127. IRQ_3 = "5",5
  128.  
  129. [IOBaseAddrChoices]
  130. IOBase_1  = "0x300",768,"300"
  131. IOBase_2  = "0x310",784,"310"
  132. IOBase_3  = "0x330",816,"330"
  133. IOBase_4  = "0x350",848,"350"
  134. IOBase_5  = "0x250",592,"250"
  135. IOBase_6  = "0x280",640,"280"
  136. IOBase_7  = "0x2A0",672,"2A0"
  137. IOBase_8  = "0x2E0",736,"2E0"
  138.  
  139. [MemMappedWndBaseAddrChoices]
  140. Add_1 = "0xC8000",819200,"C8000"
  141. Add_2 = "0xCC000",835584,"CC000"
  142. Add_3 = "0xD8000",884736,"D8000"
  143. Add_4 = "0xDC000",901120,"DC000"
  144.  
  145. [DialogConstantsENG]
  146. Help        = "&Help"
  147. Exit        = "Cancel"
  148. OK          = "OK"
  149. HelpContext = ""
  150. Continue    = "Continue"
  151. Cancel      = "Cancel"
  152.  
  153. [FileDependentDlgENG]
  154. DlgType = "Combination"
  155. DlgTemplate = "UBNDIS"
  156. Caption = $(FunctionTitle)
  157. Label1 = "&IRQ Level:"
  158. Label2 = "I/O &Port Address:"
  159. Label3 = "&Memory Address:"
  160. Combo1List = $(IRQList)
  161. Combo1Out  = $(IRQValue)
  162. Combo2List = $(IOBaseAddrHexList)
  163. Combo2Out  = $(IOBaseAddress)
  164. Combo3List = $(MemAddrListHex)
  165. Combo3Out  = $(MemAddrHex)
  166. ComboListItemsIn  = {Combo1List, Combo2List, Combo3List}
  167. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
  168. EditTextIn = ""
  169. EditTextLim = ""
  170. CBOptionsGreyed = {}
  171. NotifyFields = {NO, NO}
  172. HelpContext = $(!IDH_DB_OEMNADN2_INS)
  173.  
  174. [FileConstantsENG]
  175. ProCaption   = "NetWare for Windows NT Setup"
  176. ProCancel    = "Cancel"
  177. ProCancelMsg = "NetWare for Windows NT is not correctly installed.  "+
  178.                "Are you sure you want to cancel copying files?"
  179. ProCancelCap = "Network Setup Message"
  180. ProText1     = "Copying:"
  181. ProText2     = "To:"
  182. FunctionTitle   = "NetWare 3Com 3C503 Network Card Setup"
  183. ProductSoftwareDescription      = "ODI 3Com 3C503 Adapter Driver"
  184. ProductHardwareODI_3C503Description        = "ODI 3Com 3C503 Adapter"
  185.  
  186. [GeneralConstants]
  187. ;
  188. ;  Program flow control variables.
  189. ;
  190. from      = ""
  191. to        = ""
  192. ;
  193. ;  Return codes; Exit_Code is set to one of these
  194. ;
  195. ExitCodeOk     = 0
  196. ExitCodeCancel = 1
  197. ExitCodeFatal  = 2
  198.  
  199. KeyNull         = ""
  200. MAXIMUM_ALLOWED   = 33554432
  201. RegistryErrorIndex = NO_ERROR
  202. KeyProduct      = ""
  203. KeyParameters   = ""
  204.  
  205. TRUE            = 1
  206. FALSE           = 0
  207. NoTitle            = 0
  208.  
  209. ExitState   = "Active"
  210. OldVersionExisted = $(FALSE)
  211.  
  212. DriverPath      = $(!STF_NTPATH)\drivers
  213.  
  214. [date]
  215.     ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  216.     ; Minute, Second }
  217.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  218.  
  219.  
  220. ;---------------------------------------------------------------------------
  221. ; 1. Identify
  222. ;
  223. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  224. ;                as we are choosing currently.
  225. ;
  226. ; INPUT:         None
  227. ;
  228. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  229. ;                $($R1): Option Type (COMPUTER ...)
  230. ;                $($R2): Diskette description
  231. ;---------------------------------------------------------------------------
  232.  
  233. [Identify]
  234.     ;
  235.     ;
  236.     read-syms Identification
  237.  
  238.     set Status     = STATUS_SUCCESSFUL
  239.     set Identifier = $(OptionType)
  240.     set Media      = #("Source Media Descriptions", 1, 1)
  241.  
  242.     Return $(Status) $(Identifier) $(Media)
  243.  
  244. ;------------------------------------------------------------------------
  245. ; 2. ReturnOptions:
  246. ;
  247. ; DESCRIPTION:   To return the option list supported by this INF and the
  248. ;                localised text list representing the options.
  249. ;
  250. ;
  251. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  252. ;
  253. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  254. ;                                STATUS_NOLANGUAGE
  255. ;                                STATUS_FAILED
  256. ;                                STATUS_NOTSUPPORTED
  257. ;
  258. ;                $($R1): Option List
  259. ;                $($R2): Option Text List
  260. ;------------------------------------------------------------------------
  261.  
  262. [ReturnOptions]
  263.     ;
  264.     ;
  265.     set Status        = STATUS_FAILED
  266.     set OptionList     = {}
  267.     set OptionTextList = {}
  268.  
  269.     ;
  270.     ; Check if the language requested is supported
  271.     ;
  272.     set LanguageList = ^(LanguagesSupported, 1)
  273.     Ifcontains(i) $($0) in $(LanguageList)
  274.         ;
  275.         ; Check if the platforms requested is supported
  276.         ;
  277.         ifstr(i) $($1) == ""
  278.            goto returnoptions
  279.         endif
  280.  
  281.         set PlatformList = ^(PlatformsSupported, 1)
  282.         Ifcontains(i) $($1) in $(PlatformList)
  283.            goto returnoptions
  284.         else
  285.            set Status = STATUS_NOTSUPPORTED
  286.            goto finish_ReturnOptions
  287.         endif
  288.     else
  289.         set Status = STATUS_NOLANGUAGE
  290.         goto finish_ReturnOptions
  291.     endif
  292.  
  293.     ;
  294.     ; form a list of all the options and another of the text representing
  295.     ;
  296.  
  297. returnoptions = +
  298.     set OptionList     = ^(Options, 1)
  299.     set OptionTextList = ^(OptionsText$($0), 1)
  300.     set Status         = STATUS_SUCCESSFUL
  301.  
  302. finish_ReturnOptions = +
  303.     Return $(Status) $(OptionList) $(OptionTextList)
  304.  
  305. ;----------InstallOption-------------------------------------------------
  306. ;
  307. ; InstallOption:
  308. ;
  309. ;      This section is shelled to by main installation processing
  310. ;      or by NCPASHEL.INF during reconfig, removal, update, etc.
  311. ;
  312. ;
  313. ; FUNCTION:  To copy files representing Options
  314. ;            To configure the installed option
  315. ;            To update the registry for the installed option
  316. ;
  317. ; INPUT:     $($0):  Language to use
  318. ;            $($1):  OptionID to install
  319. ;            $($2):  SourceDirectory
  320. ;            $($3):  AddCopy  (YES | NO)
  321. ;            $($4):  DoCopy   (YES | NO)
  322. ;            $($5):  DoConfig (YES | NO)
  323. ;
  324. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  325. ;                            STATUS_NOLANGUAGE |
  326. ;                            STATUS_USERCANCEL |
  327. ;                            STATUS_FAILED
  328. ;
  329. ;------------------------------------------------------------------------
  330. [InstallOption]
  331.     ;
  332.     ; extract parameters
  333.     ;
  334.     set Option   = $($1)
  335.     set SrcDir   = $($2)
  336.     set AddCopy  = $($3)
  337.     set DoCopy   = $($4)
  338.     set DoConfig = $($5)
  339.  
  340.     ;
  341.     ; Check if the language requested is supported
  342.     ;
  343.     set LanguageList = ^(LanguagesSupported, 1)
  344.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  345.         Return STATUS_NOLANGUAGE
  346.     endif
  347.     Debug-Output "OEMNADNC.INF: STF_CWDIR is: "$(!STF_CWDIR)
  348.  
  349.     ; define all the constants
  350.  
  351.     set-subst LF = "\n"
  352.  
  353.     read-syms GeneralConstants
  354.     read-syms FileConstants
  355.  
  356.     read-syms DialogConstants$(!STF_LANGUAGE)
  357.     ifstr(i) $(!NTN_Origination) == "NCPA"
  358.         set Continue = "OK"
  359.     endif
  360.     read-syms FileConstants$(!STF_LANGUAGE)
  361.  
  362.     detect date
  363.  
  364.     set-title  $(FunctionTitle)
  365.  
  366.     set to   = Begin
  367.     set from = Begin
  368. ;
  369. ;  Assume all is well.
  370. ;
  371.     set CommonStatus = STATUS_SUCCESSFUL
  372.  
  373.     EndWait
  374.  
  375. ;
  376. ;   Set up the operation-mode-based variables and gaily welcome
  377. ;   the user.  If the "install mode" variable is improperly set,
  378. ;   assume this is a new installation.
  379. ;
  380.  
  381. Begin = +
  382.  
  383.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  384.                 set StartLabel = removeadapter
  385.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  386.                 set StartLabel = UpgradeSoftware
  387.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  388.                 set StartLabel = bindingadapter
  389.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  390.                 set StartLabel = configureadapter
  391.     else
  392.                 set StartLabel = installadapter
  393.                 set OEM_ABANDON_OPTIONS = {}
  394.                 set OEM_ABANDON_SOFTWARE = FALSE
  395.                 set OEM_ABANDON_ON = TRUE
  396.     endif
  397.  
  398.  
  399.     Set IRQValue = *($(IRQList),2)
  400.     Set IOBaseAddrValue = *($(IOBaseAddrValues),1)
  401.     Set MemAddrHex = *($(MemAddrListHex),1)
  402.     Set NwConnectorType = "BNC"
  403.  
  404.     set from = $(fatal)
  405.     set to = $(fatal)
  406.     goto $(StartLabel)
  407.  
  408. ;-----------------------------------------------
  409. ; Installation Section
  410. ;-----------------------------------------------
  411.  
  412. installadapter = +
  413.  
  414.     goto adapteroptions
  415.  
  416.  
  417. ;-----------------------------------------------
  418. ; Configuration Section
  419. ;-----------------------------------------------
  420. ;
  421. ;   Get the current values of all the parameters
  422. ;
  423. configureadapter = +
  424.     Ifstr $(KeyProduct) == $(KeyNull)
  425.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  426.         Ifstr $(KeyProduct) == $(KeyNull)
  427.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  428.             Debug-Output "Cannot find component product key"
  429.             goto fatalregistry
  430.         Endif
  431.     Endif
  432.  
  433.     Set AdapterNumber = ""
  434.  
  435.     ;
  436.     ; Get the other parameters;  they're attached to the service parameters key
  437.     ;
  438.     Debug-Output "OEMNADNC.INF: Shelling to FindService"
  439.     Shell $(UtilityInf) FindService, $(KeyProduct)
  440.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  441.         Debug-Output "OEMNADNC.INF: FindService shell failure"
  442.         Goto ShellCodeError
  443.     Endif
  444.     Ifstr(i) $($R0) != NO_ERROR
  445.         Debug-Output "OEMNADNC.INF: FindService Shell error: "$($R0)
  446.         Goto fatalregistry
  447.     endif
  448.  
  449.     set KeyParameters = $($R2)
  450.  
  451.     ;
  452.     ;  We don't need the services key, so close it.
  453.     ;
  454.     CloseRegKey $($R1)
  455.  
  456.     Ifstr $(KeyParameters) == $(KeyNull)
  457.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  458.         Debug-Output "OEMNADNC.INF: Cannot find component service"
  459.         goto fatalregistry
  460.     endif
  461.  
  462.     set OldVersionExisted = $(TRUE)
  463.  
  464.     set ValueName = ""
  465.     set ValueData = ""
  466.     set ValueStr  = ""
  467.     set ValueList = {}
  468.  
  469.     ;
  470.     ; Get the old values
  471.     ;
  472.     EnumRegValue $(KeyParameters) ValueList
  473.  
  474.     ForListDo $(ValueList)
  475.  
  476.         set ValueItem = $($)
  477.         set ValueName = *($(ValueItem),1)
  478.         set ValueData = *($(ValueItem),4)
  479.         Ifstr(i) $(ValueName) == "InterruptNumber"
  480.             set IRQValue = $(ValueData)
  481.         else-ifstr(i) $(ValueName) == "IoBaseAddress"
  482.             set IOBaseAddrValue = $(ValueData)
  483.         else-ifstr(i) $(ValueName) == "MemoryMappedBaseAddress"
  484.             set MemAddrDec = $(ValueData)
  485.         endif
  486.  
  487.     EndForListDo
  488.  
  489. ; TWM
  490.     set MemAddrHex = *($(MemAddrListHex), +
  491.          ~($(MemAddrListDec),$(MemAddrDec)))
  492.  
  493.     ifstr(i) $(IRQValue) == ""
  494.         set IRQValue = *($(IRQList), 2)
  495.     endif
  496.  
  497.     ifstr(i) $(IOBaseAddrValue) == ""
  498.         set IOBaseAddrValue = *($(IOBaseAddrDecList), 1)
  499.     endif
  500.  
  501.     ifstr(i) $(MemAddrHex) == ""
  502.         set MemAddrHex = *($(MemAddrListHex), 1)
  503.     endif
  504. ;
  505. ;  Read the symbolic link to the ODI entry from the "OdiLoadName" value
  506. ;
  507.     GetRegValue $(KeyParameters),"OdiLoadName", CardInstanceList
  508.     Set CardInstanceName = *($(CardInstanceList),4)
  509.  
  510.     Set OdiCardName = $(!NTN_ServiceBase)"\"$(DriverName)"\"$(OdiModules)"\"$(CardInstanceName)
  511.     Debug-Output "OEMNADNC.INF: OdiCardName = "$(OdiCardName)
  512.  
  513.     OpenRegKey $(!REG_H_LOCAL) "" $(OdiCardName) $(MAXIMUM_ALLOWED) KeyOdiCard
  514.  
  515.     set NwConnectorType = "BNC"
  516.  
  517.     Ifstr(i) $(KeyOdiCard) == ""
  518.         Debug-Output "OEMNADNC.INF: Can't open Odi Card Name "$(OdiCardName)
  519.     Else
  520.         GetRegValue $(KeyOdiCard) "Parameters" ParmList
  521.     set ParmListValues = *($(ParmList), 4)
  522.     Debug-Output "OEMNADNC.INF: ParmListValues = "$(ParmListValues)
  523.  
  524.     ForListDo $(ParmListValues)
  525.         Ifstr(i) $($) == "DIX"
  526.         set NwConnectorType = "DIX"
  527.         Debug-Output "OEMNADNC.INF: DIX found"
  528.         Endif
  529.     EndForListDo
  530.     Endif
  531.  
  532. adaptersetup =+
  533.  
  534.     goto adapteroptions
  535. ;
  536. ;   Let the user bang on the options until satisfied.
  537. ;
  538. adapteroptions = +
  539.     set from = adapteroptions
  540.  
  541.     set IOBaseAddress = *($(IOBaseAddrHexList), ~($(IOBaseAddrDecList),+
  542.         $(IOBaseAddrValue)))
  543. ; TWM
  544.     set MemAddrHex = *($(MemAddrListHex), +
  545.          ~($(MemAddrListDec),$(MemAddrDec)))
  546.  
  547.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  548.  
  549.     Debug-Output "OEMNADNC.INF: Before LibraryProcecdure"
  550.     Debug-Output "IRQValue         = "$(IRQValue)
  551.     Debug-Output "IOBaseAddress    = "$(IOBaseAddress)
  552.     Debug-Output "MemAddrHex       = "$(MemAddrHex)
  553.     Debug-Output "NwConnectorType  = "$(NwConnectorType)
  554.  
  555.     LoadLibrary "Netware for Windows NT" nwsetup.dll NwLibHandle
  556.  
  557.     LibraryProcedure Result $(NwLibHandle) NWSetup3C503 $(IRQValue) $(IOBaseAddress) $(MemAddrHex) $(NwConnectorType)
  558.  
  559.     set IRQValue = *($(Result), 1)
  560.     set IOBaseAddress = *($(Result), 2)
  561.     set MemAddrHex = *($(Result), 3)
  562.     set MemAddrDec = *($(MemAddrListDec), +
  563.          ~($(MemAddrListHex),$(MemAddrHex)))
  564.  
  565.     set NwConnectorType = *($(Result), 4)
  566.  
  567.     FreeLibrary $(NwLibHandle)
  568.  
  569.     Ifstr(i) $(IRQValue) == ""
  570.         Debug-Output "OEMNADNC.INF: Cancel was selected"
  571.     goto end
  572.     Endif
  573.  
  574. ;    ui start "InputDlg"
  575. ;
  576. ;    ifstr(i) $(DLGEVENT) == "CONTINUE"
  577. ;        set IRQValue = $(Combo1Out)
  578. ;        set IOBaseAddress = $(Combo2Out)
  579. ;        set MemAddrHex = $(Combo3Out)
  580. ;        ui pop 1
  581. ;    else-ifstr(i) $(DLGEVENT) == "BACK"
  582. ;        set CommonStatus = STATUS_USERCANCEL
  583. ;        Debug-Output "Action: exit. Bye."
  584. ;        ui pop 1
  585. ;        goto end
  586. ;    else
  587. ;        ;
  588. ;        ; Unknow command
  589. ;        ;
  590. ;        ui pop 1
  591. ;        Debug-Output "Action: unknown. Bye."
  592. ;        goto end
  593. ;    endif
  594.  
  595. ;    Debug-Output "IRQ Level  = "$(IRQValue)
  596. ;    Debug-Output "IO Address = "$(IOBaseAddress)
  597. ;    Debug-Output "Memory Address = "$(MemAddrDec)
  598.  
  599.     set IOBaseAddrValue = *($(IOBaseAddrDecList), ~($(IOBaseAddrHexList),+
  600.         $(IOBaseAddress)))
  601.     set MemAddrHex = *($(MemAddrListHex), +
  602.          ~($(MemAddrListDec),$(MemAddrDec)))
  603. ;
  604. ;   If installing, go create the necessary keys;
  605. ;   if configuring, they're already open.
  606. ;
  607.     ifint $(OldVersionExisted) == $(TRUE)
  608.         ifstr(i) $(!NTN_InstallMode) == configure
  609.             goto writeparameters
  610.         endif
  611.     endif
  612.  
  613.     StartWait
  614. ;
  615. ;   Create the HARDWARE\Netcard region and its corresponding service
  616. ;
  617.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  618.  
  619.  
  620.     ifint $($R4) != -1
  621.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  622.     endif
  623.  
  624.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  625.         Debug-Output "OEMNADNC.INF: Cannot add hardware component"
  626.         goto ShellCodeError
  627.     endif
  628.  
  629.     set RegistryErrorIndex = $($R0)
  630.  
  631.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  632.         EndWait
  633.         Debug-Output "OEMNADNC.INF: Registry error: add hardware component"
  634.         CloseRegKey $($R1)
  635.         CloseRegKey $($R2)
  636.         CloseRegKey $($R3)
  637.         goto fatalregistry
  638.     endif
  639.  
  640. ;
  641. ;   At this point:
  642. ;     $R1  Registry key variable for HARDWARE\Netcard\(n)
  643. ;     $R2  Registry key variable for HARDWARE\Netcard\(n)\\NetRules
  644. ;     $R3  Registry key handle for <service>\Parameters key
  645. ;     $R4  Adapter number assigned to adapter
  646. ;     $R5  Service name generated by combining svc name with adapter number
  647. ;
  648.     set KeyParameters = $($R3)
  649.     set KeyAdapterRules = $($R2)
  650.     set AdapterNumber = $($R4)
  651.  
  652.     Set-add TempAdapterNumber = $(AdapterNumber),0
  653.  
  654.     set CardInstanceName = $(ProductHardwareName)" #"$(TempAdapterNumber)
  655.  
  656.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  657.                        {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  658.                        {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  659.                        {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  660.                        {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  661.                        {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  662.  
  663.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  664.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  665.         Debug-Output "OEMNADNC.INF: ShellCode error"
  666.         goto ShellCodeError
  667.     endif
  668.  
  669.     CloseRegKey $($R1)
  670.  
  671.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  672.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  673.  
  674.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  675.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  676.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  677.  
  678.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  679.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  680.         Debug-Output "OEMNADNC.INF: ShellCode error."
  681.         goto ShellCodeError
  682.     endif
  683.  
  684.     set RegistryErrorIndex = $($R0)
  685.  
  686.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  687.         EndWait
  688.         Debug-Output "OEMNADNC.INF: Resgitry error: add value list."
  689.         CloseRegKey $(KeyParameters)
  690.         CloseRegKey $(KeyAdapterRules)
  691.         goto fatalregistry
  692.     endif
  693.  
  694.     CloseRegKey $(KeyAdapterRules)
  695.  
  696.     SetRegValue $(KeyParameters) {OdiLoadName,$(NoTitle),$(!REG_VT_SZ),$(CardInstanceName)}
  697.  
  698.     goto writeparameters
  699. ;
  700. ;   REQUIRED:   $(KeyParameters) contains service Parameters key handle
  701. ;
  702. writeparameters = +
  703.     Shell $(UtilityInf), GetBusTypeNum
  704.     set BusTypeNum = $($R1)
  705.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  706.         Debug-Output "OEMNADNC.INF: ShellCode error."
  707.         goto ShellCodeError
  708.     endif
  709. ;
  710. ;   Add the rest of the parameters to the Services area
  711. ;
  712.     set NewValueList = {{InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  713.                        {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  714.                        {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  715.                        {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
  716.                        {MemoryMappedBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(MemAddrDec)}}
  717.  
  718.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  719.  
  720.     CloseRegKey $(KeyParameters)
  721.  
  722.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  723.         Debug-Output "OEMNADNC.INF: ShellCode error."
  724.         goto ShellCodeError
  725.     endif
  726.  
  727.     set RegistryErrorIndex = $($R0)
  728.  
  729.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  730.         Debug-Output "OEMNADNC.INF: Registry error: Add value list"
  731.         goto fatalregistry
  732.     endif
  733.  
  734. ;
  735. ;  TRAVIS: Put the ODILOAD update info here!
  736. ;
  737.     Debug-Output "OEMNADNC.INF: Add ODILOAD Parameters"
  738.  
  739.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(DriverName) $(MAXIMUM_ALLOWED) KeyOdiLoad
  740.     Ifstr $(KeyOdiLoad) == $(KeyNull)
  741.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  742.         Debug-Output "OEMNADNC.INF: Cannot open service "$(DriverName)
  743.         goto fatalregistry
  744.     Endif
  745.  
  746.     Set KeyOdiCard = $(KeyNull)
  747.     Debug-Output "OEMNADNC.INF: CardInstanceName = "$(CardInstanceName)
  748.  
  749.     set CloseOdiModules = ""
  750.  
  751.     Ifstr(i) $(AdapterNumber) != ""
  752.         ;  This adapter was just installed; allow creation of the #nn key
  753.     CreateRegKey $(KeyOdiLoad) {$(OdiModules),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyOdiModules
  754.     Ifstr(i) $(KeyOdiModules) == $(KeyNull)
  755.         OpenRegKey $(KeyOdiLoad) "" $(OdiModules) $(MAXIMUM_ALLOWED) KeyOdiModules
  756.         Ifstr(i) $(KeyOdiLoad) == $(KeyNull)
  757.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  758.         Debug-Output "OEMNADNC.INF: Cannot find "$(DriverName)"\"$(OdiModules)
  759.             goto fatalregistry
  760.         Endif
  761.     Endif
  762.     set CloseOdiModules = "1"
  763.         CreateRegKey $(KeyOdiModules) {$(CardInstanceName),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyOdiCard
  764.     Endif
  765.  
  766.     Ifstr(i) $(KeyOdiCard) == $(KeyNull)
  767.         ;
  768.         ;  This is either an old card, or a prior version of the key existed.
  769.         ;
  770.     OpenRegKey $(KeyOdiLoad) "" $(OdiModules)"\"$(CardInstanceName) $(MAXIMUM_ALLOWED) KeyOdiCard
  771.     Ifstr(i) $(KeyOdiCard) == $(KeyNull)
  772.             set RegistryErrorIndex = CANNOT_FIND_COMPONEXT_SERVICE
  773.         Debug-Output "OEMNADNC.INF: Can't create "$(DriverName)"\"$(CardInstanceName)
  774.         goto fatalresistry
  775.     Endif
  776.     Endif
  777.  
  778.     set IOBaseAddressNw = *($(IOBaseAddrNwList), +
  779.          ~($(IOBaseAddrHexList),$(IOBaseAddress)))
  780.     set MemAddrNw = *($(MemAddrListNw), +
  781.          ~($(MemAddrListHex),$(MemAddrHex)))
  782.  
  783.     Debug-Output "OEMNADNC.INF: MemAddrNw     = "$(MemAddrNw)
  784.     Debug-Output "OEMNADNC.INF: IOBaseAddress = "$(IOBaseAddress)
  785.  
  786.     set OdiParmList = {"Frame ETHERNET_802.3", +
  787.                "Frame ETHERNET_802.2", +
  788.                "Frame ETHERNET_II", +
  789.                "Frame ETHERNET_SNAP", +
  790.                "Port "$(IOBaseAddressNw), +
  791.                "Int "$(IRQValue), +
  792.                "Mem "$(MemAddrNw)}
  793.     Ifstr(i) $(NwConnectorType) == DIX
  794.         set OdiParmList = >($(OdiParmList), $(NwConnectorType))
  795.     Endif
  796.  
  797.     SetRegValue $(KeyOdiCard) {"Parameters",$(NoTitle),$(!REG_VT_MULTI_SZ),$(OdiParmList)}
  798.  
  799.     CloseRegKey $(KeyOdiLoad)
  800.     Ifstr(i) $(CloseOdiModules) != $(KeyNull)
  801.         CloseRegKey $(KeyOdiModules)
  802.     Endif
  803.     CloseRegKey $(KeyOdiCard)
  804.  
  805. ;
  806. ; Update the card name in IpxSpxII to be the last card installed
  807. ;
  808.     set IpxParameters = $(!NTN_ServiceBase)"\IpxSpxII\Parameters"
  809.     OpenRegKey $(!REG_H_LOCAL) "" $(IpxParameters) $(MAXIMUM_ALLOWED) KeyIpxParameters
  810.     Ifstr(i) $(KeyIpxParameters) == ""
  811.         Debug-Output "OEMNADNC.INF: Can't update IpxSpxII CardName"
  812.     Else
  813.         Split-String $(CardInstanceName) " " CardNameParts
  814.     set CardNameBase = *($(CardNameParts),1)
  815.         SetRegValue $(KeyIpxParameters) {"CardName",$(NoTitle),$(!REG_VT_SZ),$(CardNameBase)}
  816.     CloseRegKey $(KeyIpxParameters)
  817.     Endif
  818.  
  819.     goto successful
  820.  
  821. ;-----------------------------------------------
  822. ; Binding section
  823. ;-----------------------------------------------
  824. bindingadapter =+
  825.     set Error = "Binding: Sorry, not yet implemented."
  826.     goto fatal
  827.  
  828. ;-----------------------------------------------
  829. ; Removeadapter section
  830. ;-----------------------------------------------
  831.  
  832. removeadapter = +
  833.  
  834. ;
  835. ;  TRAVIS: Put the ODILOAD adapter removal stuff here!
  836. ;
  837.  
  838. ;    set DlgType      = "MessageBox"
  839. ;    set STF_MB_TITLE = "removeadapter"
  840. ;    set STF_MB_TEXT  = $(!NTN_RegBase)
  841. ;    set STF_MB_TYPE  = 1
  842. ;    set STF_MB_ICON  = 3
  843. ;    set STF_MB_DEF   = 1
  844. ;    ui start "Error Message"
  845.  
  846. ;
  847. ; Delete the Servcies\OdiLoad\Odi_Modules\xxxxxx #01 card instance.
  848. ;
  849.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyParameters
  850.     Ifstr(i) $(KeyParameters) == ""
  851.  
  852.         Debug-Output "OEMNADNC.INF: removeadapter, Can't open "$(!NTN_RegBase)
  853.  
  854.     Else
  855.  
  856.         GetRegValue $(KeyParameters),"ServiceName", ServiceNameList
  857.         Set ServiceName = *($(ServiceNameList),4)
  858.         CloseRegKey $(KeyParameters)
  859.  
  860.  
  861.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters" $(MAXIMUM_ALLOWED) KeyService
  862.     ifstr(i) $(KeyService) == ""
  863.  
  864.         Debug-Output "OEMNADNC.INF: removeadapter, Can't open "$(ServiceName)
  865.  
  866.     Else
  867.         GetRegValue $(KeyService),"OdiLoadName", CardInstanceList
  868.         Set CardInstanceName = *($(CardInstanceList),4)
  869.         CloseRegKey $(KeyService)
  870.  
  871.         Set OdiModuleName = $(!NTN_ServiceBase)"\"$(DriverName)"\"$(OdiModules)
  872.             OpenRegKey $(!REG_H_LOCAL) "" $(OdiModuleName) $(MAXIMUM_ALLOWED) KeyOdiModules
  873.             Ifstr(i) $(KeyOdiModules) == ""
  874.  
  875.                 Debug-Output "OEMNADNC.INF: removeadapter, Can't open "$(OdiModulesName)
  876.  
  877.             Else
  878.                 Debug-Output "OEMNADNC.INF: Deleting card "$(CardInstanceName)
  879.         Debug-Output "OEMNADNC.INF: From Key "$(OdiModuleName)
  880.  
  881.                 DeleteRegTree $(KeyOdiModules) $(CardInstanceName)
  882.  
  883.         FlushRegKey $(KeyOdiModules)
  884.         CloseRegKey $(KeyOdiModules)
  885.  
  886.             Endif
  887.     Endif
  888.  
  889.     Endif
  890.  
  891. ;
  892. ; Increment the OdiLoad reference count so OdiLoad is not removed as a
  893. ; service.
  894. ;
  895.  
  896.     Shell $(UtilityInf), IncrementRefCount, $(ProductKeyName)
  897.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  898.         Debug-Output "OEMNADNC.INF: ShellCode error removeadapter"
  899.         goto ShellCodeError
  900.     Endif
  901.  
  902.     set RegistryErrorIndex = $($R0)
  903.  
  904.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  905.         goto fatalregistry
  906.     Endif
  907.  
  908.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  909.             $(DriverName), $(!NTN_RegBase)
  910.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  911.         Debug-Output "OEMNADNC.INF: ShellCode error"
  912.         goto ShellCodeError
  913.     endif
  914.  
  915.     set RegistryErrorIndex = $($R0)
  916.  
  917.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  918.         goto fatalregistry
  919.     endif
  920.  
  921. ; Decrement the reference count so OdiLoad can be removed when all the
  922. ; ODI adapters have been removed.
  923. ;
  924.     Shell $(UtilityInf), DecrementRefCount, $(ProductKeyName)
  925.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  926.         Debug-Output "OEMNADNC.INF: ShellCode error removeadapter"
  927.         goto ShellCodeError
  928.     Endif
  929.  
  930.     set RegistryErrorIndex = $($R0)
  931.  
  932.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  933.         goto fatalregistry
  934.     Endif
  935.  
  936.     goto end
  937.  
  938. ;-----------------------------------------------
  939. ; Upgrade Software section
  940. ;-----------------------------------------------
  941.  
  942. UpgradeSoftware = +
  943.     ;
  944.     ; upgrade/update hardware component
  945.     ; There is no different between upgrade and update for hardware
  946.     ; component
  947.     ;
  948.     ; 1. Get the Service Name
  949.     ; 2. Change the NetRule section if necessary
  950.     ;
  951.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  952.           $(MAXIMUM_ALLOWED) NetworkCardKey
  953.     Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  954.         ;
  955.         ; Get Service name
  956.         ;
  957.         GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  958.         set ServiceName = *($(ServiceNameInfo), 4)
  959.  
  960.         ;
  961.         ; Change the NetRule if necessary
  962.         ;
  963.         OpenRegKey $(NetworkCardKey) "" "NetRules" +
  964.             $(MAXIMUM_ALLOWED) NetRuleKey
  965.         Ifstr(i) $(NetRuleKey) != $(KeyNull)
  966.             ;
  967.             ; Make the change....
  968.             ;
  969.         else
  970.             ;
  971.             ; Error, cannot open net rules key
  972.             ;
  973.             goto fatalregistry
  974.         endif
  975.  
  976.         CloseRegKey $(NetRules)
  977.         CloseRegKey $(NetworkCardKey)
  978.     else
  979.         ;
  980.         ; Error, cannot open network card key
  981.         ;
  982.         goto fatalregistry
  983.     endif
  984.     ;
  985.     ; 3. Change the service section of the hardware. i.e.,
  986.     ;    ParameterName change, value change, etc.
  987.     ;
  988.     OpenRegKey $(!REG_H_LOCAL) "" +
  989.           $(!NTN_ServiceBase)"\"$(ServiceName) +
  990.           $(MAXIMUM_ALLOWED) ServiceKey
  991.  
  992.     Ifstr(i) $(ServiceKey) != $(KeyNull)
  993.         ;
  994.         ; Get the ServiceKey to change the Start value
  995.         ; or Type value. Or open Parameters key to
  996.         ; change the hardware parameters if necessary.
  997.         ;
  998.         CloseRegKey $(ServiceKey)
  999.     else
  1000.         ;
  1001.         ; Error, cannot open network card key
  1002.         ;
  1003.         goto fatalregistry
  1004.     endif
  1005.  
  1006.     goto end
  1007.     ;
  1008.     ; End of Upgrade Software
  1009.     ;
  1010.  
  1011. ;
  1012. ;  Escape hatches
  1013. ;
  1014. successful = +
  1015.     goto end
  1016.  
  1017. abandon = +
  1018.     ForListDo $(OEM_ABANDON_OPTIONS)
  1019.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1020.             $(DriverName), $($)
  1021.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1022.             Debug-Output "OEMNADNC.INF: ShellCode error"
  1023.             goto ShellCodeError
  1024.         endif
  1025.  
  1026.         set RegistryErrorIndex = $($R0)
  1027.  
  1028.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1029.             goto fatalregistry
  1030.         endif
  1031.     EndForListDo
  1032.  
  1033.     goto end
  1034.  
  1035. ;
  1036. ; warning display
  1037. ;
  1038. warning = +
  1039.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1040.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1041.         goto ShellCodeError
  1042.     endif
  1043.     ifstr(i) $($R1) == "OK"
  1044.         goto $(to)
  1045.     else-ifstr(i) $($R1) == "CANCEL"
  1046.         goto $(from)
  1047.     else
  1048.         goto "end"
  1049.     endif
  1050.  
  1051.  
  1052. ;
  1053. ; non fatal error display
  1054. ;
  1055. nonfatalinfo = +
  1056.     Set CommonStatus = STATUS_USERCANCEL
  1057.     Set Severity = STATUS
  1058.     goto nonfatalmsg
  1059. nonfatal = +
  1060.     Set Severity = NONFATAL
  1061.     goto nonfatalmsg
  1062. nonfatalmsg = +
  1063.     ifstr(i) $(Error) == ""
  1064.         Set Severity = NONFATAL
  1065.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1066.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1067.             goto ShellCodeError
  1068.         endif
  1069.         set Error = $($R0)
  1070.     endif
  1071.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  1072.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1073.         goto ShellCodeError
  1074.     endif
  1075.     ifstr(i) $($R1) == "OK"
  1076.         goto $(from)
  1077.     else
  1078.         goto "end"
  1079.     endif
  1080.  
  1081. ;
  1082. ;  Registry is broken
  1083. ;
  1084. fatalregistry = +
  1085.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1086.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1087.         goto ShellCodeError
  1088.     endif
  1089.     set Error = $($R0)
  1090.     goto fatal
  1091.  
  1092. fataldetect = +
  1093.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  1094.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1095.         Debug-Output "OEMNADNC.INF: ShellCode error: cannot get an error string."
  1096.         goto ShellCodeError
  1097.     endif
  1098.     set Error = $($R0)
  1099.     Goto fatal
  1100. ;
  1101. ; fatal error display
  1102. ;
  1103. fatal = +
  1104.     ifstr(i) $(Error) == ""
  1105.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1106.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1107.             goto ShellCodeError
  1108.         endif
  1109.         set Error = $($R0)
  1110.     endif
  1111.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1112.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1113.         goto ShellCodeError
  1114.     endif
  1115.  
  1116.     goto setfailed
  1117.  
  1118. ;
  1119. ;  Shelling error
  1120. ;
  1121. ShellCodeError = +
  1122.     set DlgType      = "MessageBox"
  1123.     set STF_MB_TITLE = "Error: "$(FunctionTitle)
  1124.     set STF_MB_TEXT  = "Shell Code Error"
  1125.     set STF_MB_TYPE  = 1
  1126.     set STF_MB_ICON  = 3
  1127.     set STF_MB_DEF   = 1
  1128.     ui start "Error Message"
  1129.     goto setfailed
  1130.  
  1131. setfailed = +
  1132.     set CommonStatus = STATUS_FAILED
  1133.     ;
  1134.     ; if OEM_ABANDON_ON == TRUE, then remove the registry entries
  1135.     ;
  1136.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1137.         set OEM_ABANDON_ON = FALSE
  1138.         goto abandon
  1139.     endif
  1140.     goto end
  1141.  
  1142. end = +
  1143.     goto term
  1144.  
  1145. term = +
  1146.  
  1147.     Return $(CommonStatus)
  1148.  
  1149. ;***************************************************************
  1150. ;  INSTALL SECTIONS
  1151. ;***************************************************************
  1152. [Install-Option]
  1153.     set STF_VITAL = ""
  1154.  
  1155.     ifstr(i) $(AddCopy) == "YES"
  1156.  
  1157.         ;
  1158.         ; Add the files to the copy list
  1159.         ;
  1160.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1161.  
  1162.     endif
  1163.  
  1164.     ifstr(i) $(DoCopy) == "YES"
  1165.  
  1166.        ;
  1167.        ; Copy files in the copy list
  1168.        ;
  1169.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1170.        CopyFilesInCopyList
  1171.  
  1172.     endif
  1173.  
  1174.     ifstr(i) $(DoConfig) == "YES"
  1175.         ;
  1176.         ; Add product to registry
  1177.         ;
  1178.  
  1179.         ;
  1180.         ; Finish up
  1181.     endif
  1182.  
  1183.     Exit
  1184.  
  1185. [Install-Update]
  1186.    set STF_VITAL        = ""
  1187.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1188.    ;set STF_VERSION     = "YES"
  1189.  
  1190.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1191.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1192.  
  1193.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1194.    CopyFilesInCopyList
  1195.  
  1196.    exit
  1197.  
  1198. [Source Media Descriptions]
  1199.     1  = "Windows NT Setup Disk #1"  , TAGFILE = disk1
  1200.     2  = "Windows NT Setup CD-ROM Disk"  , TAGFILE = disk2
  1201.     99    = "LMHOST disk", TAGFILE = lmhosts
  1202. [ProductType]
  1203. STF_PRODUCT  = Winnt
  1204. STF_PLATFORM = I386
  1205. [Files-Inf]
  1206. 2,    oemsetup.inf,     SIZE=1000,    RENAME=$(!UG_Filename)
  1207. [Files-ODI_3C503]
  1208. 2,3c503.lan , SIZE=20000
  1209.  
  1210.  
  1211.  
  1212.